
struct
{
    const char *name;
    uint64_t val;
} 
m_vmcs_fields[] =
{
    { "GUEST_ES_SELECTOR",              GUEST_ES_SELECTOR               },
    { "GUEST_CS_SELECTOR",              GUEST_CS_SELECTOR               },
    { "GUEST_SS_SELECTOR",              GUEST_SS_SELECTOR               },
    { "GUEST_DS_SELECTOR",              GUEST_DS_SELECTOR               },
    { "GUEST_FS_SELECTOR",              GUEST_FS_SELECTOR               },
    { "GUEST_GS_SELECTOR",              GUEST_GS_SELECTOR               },
    { "GUEST_LDTR_SELECTOR",            GUEST_LDTR_SELECTOR             },
    { "GUEST_TR_SELECTOR",              GUEST_TR_SELECTOR               },
    { "HOST_ES_SELECTOR",               HOST_ES_SELECTOR                },
    { "HOST_CS_SELECTOR",               HOST_CS_SELECTOR                },
    { "HOST_SS_SELECTOR",               HOST_SS_SELECTOR                },
    { "HOST_DS_SELECTOR",               HOST_DS_SELECTOR                },
    { "HOST_FS_SELECTOR",               HOST_FS_SELECTOR                },
    { "HOST_GS_SELECTOR",               HOST_GS_SELECTOR                },
    { "HOST_TR_SELECTOR",               HOST_TR_SELECTOR                },
    { "IO_BITMAP_A",                    IO_BITMAP_A                     },
    { "IO_BITMAP_A_HIGH",               IO_BITMAP_A_HIGH                },
    { "IO_BITMAP_B",                    IO_BITMAP_B                     },
    { "IO_BITMAP_B_HIGH",               IO_BITMAP_B_HIGH                },
    { "GUEST_PDPTE0",                   GUEST_PDPTE0                    },
    { "GUEST_PDPTE1",                   GUEST_PDPTE1                    },
    { "GUEST_PDPTE2",                   GUEST_PDPTE2                    },
    { "GUEST_PDPTE3",                   GUEST_PDPTE3                    },
    { "EPT_POINTER",                    EPT_POINTER                     },
    { "EPT_POINTER_HIGH",               EPT_POINTER_HIGH                },
    { "MSR_BITMAP",                     MSR_BITMAP                      },
    { "MSR_BITMAP_HIGH",                MSR_BITMAP_HIGH                 },
    { "VM_EXIT_MSR_STORE_ADDR",         VM_EXIT_MSR_STORE_ADDR          },
    { "VM_EXIT_MSR_STORE_ADDR_HIGH",    VM_EXIT_MSR_STORE_ADDR_HIGH     },
    { "VM_EXIT_MSR_LOAD_ADDR",          VM_EXIT_MSR_LOAD_ADDR           },
    { "VM_EXIT_MSR_LOAD_ADDR_HIGH",     VM_EXIT_MSR_LOAD_ADDR_HIGH      },
    { "VM_ENTRY_MSR_LOAD_ADDR",         VM_ENTRY_MSR_LOAD_ADDR          },
    { "VM_ENTRY_MSR_LOAD_ADDR_HIGH",    VM_ENTRY_MSR_LOAD_ADDR_HIGH     },
    { "TSC_OFFSET",                     TSC_OFFSET                      },
    { "TSC_OFFSET_HIGH",                TSC_OFFSET_HIGH                 },
    { "VIRTUAL_APIC_PAGE_ADDR",         VIRTUAL_APIC_PAGE_ADDR          },
    { "VIRTUAL_APIC_PAGE_ADDR_HIGH",    VIRTUAL_APIC_PAGE_ADDR_HIGH     },
    { "VMCS_LINK_POINTER",              VMCS_LINK_POINTER               },
    { "VMCS_LINK_POINTER_HIGH",         VMCS_LINK_POINTER_HIGH          },
    { "GUEST_IA32_DEBUGCTL",            GUEST_IA32_DEBUGCTL             },
    { "GUEST_IA32_DEBUGCTL_HIGH",       GUEST_IA32_DEBUGCTL_HIGH        },
    { "PIN_BASED_VM_EXEC_CONTROL",      PIN_BASED_VM_EXEC_CONTROL       },
    { "CPU_BASED_VM_EXEC_CONTROL",      CPU_BASED_VM_EXEC_CONTROL       },
    { "EXCEPTION_BITMAP",               EXCEPTION_BITMAP                },
    { "PAGE_FAULT_ERROR_CODE_MASK",     PAGE_FAULT_ERROR_CODE_MASK      },
    { "PAGE_FAULT_ERROR_CODE_MATCH",    PAGE_FAULT_ERROR_CODE_MATCH     },
    { "CR3_TARGET_COUNT",               CR3_TARGET_COUNT                },
    { "VM_EXIT_CONTROLS",               VM_EXIT_CONTROLS                },
    { "VM_EXIT_MSR_STORE_COUNT",        VM_EXIT_MSR_STORE_COUNT         },
    { "VM_EXIT_MSR_LOAD_COUNT",         VM_EXIT_MSR_LOAD_COUNT          },
    { "VM_ENTRY_CONTROLS",              VM_ENTRY_CONTROLS               },
    { "VM_ENTRY_MSR_LOAD_COUNT",        VM_ENTRY_MSR_LOAD_COUNT         },
    { "VM_ENTRY_INTR_INFO_FIELD",       VM_ENTRY_INTR_INFO_FIELD        },
    { "VM_ENTRY_EXCEPTION_ERROR_CODE",  VM_ENTRY_EXCEPTION_ERROR_CODE   },
    { "VM_ENTRY_INSTRUCTION_LEN",       VM_ENTRY_INSTRUCTION_LEN        },
    { "TPR_THRESHOLD",                  TPR_THRESHOLD                   },
    { "SECONDARY_VM_EXEC_CONTROL",      SECONDARY_VM_EXEC_CONTROL       },
    { "VM_INSTRUCTION_ERROR",           VM_INSTRUCTION_ERROR            },
    { "VM_EXIT_REASON",                 VM_EXIT_REASON                  },
    { "VM_EXIT_INTR_INFO",              VM_EXIT_INTR_INFO               },
    { "VM_EXIT_INTR_ERROR_CODE",        VM_EXIT_INTR_ERROR_CODE         },
    { "IDT_VECTORING_INFO_FIELD",       IDT_VECTORING_INFO_FIELD        },
    { "IDT_VECTORING_ERROR_CODE",       IDT_VECTORING_ERROR_CODE        },
    { "VM_EXIT_INSTRUCTION_LEN",        VM_EXIT_INSTRUCTION_LEN         },
    { "VMX_INSTRUCTION_INFO",           VMX_INSTRUCTION_INFO            },
    { "GUEST_ES_LIMIT",                 GUEST_ES_LIMIT                  },
    { "GUEST_CS_LIMIT",                 GUEST_CS_LIMIT                  },
    { "GUEST_SS_LIMIT",                 GUEST_SS_LIMIT                  },
    { "GUEST_DS_LIMIT",                 GUEST_DS_LIMIT                  },
    { "GUEST_FS_LIMIT",                 GUEST_FS_LIMIT                  },
    { "GUEST_GS_LIMIT",                 GUEST_GS_LIMIT                  },
    { "GUEST_LDTR_LIMIT",               GUEST_LDTR_LIMIT                },
    { "GUEST_TR_LIMIT",                 GUEST_TR_LIMIT                  },
    { "GUEST_GDTR_LIMIT",               GUEST_GDTR_LIMIT                },
    { "GUEST_IDTR_LIMIT",               GUEST_IDTR_LIMIT                },
    { "GUEST_ES_AR_BYTES",              GUEST_ES_AR_BYTES               },
    { "GUEST_CS_AR_BYTES",              GUEST_CS_AR_BYTES               },
    { "GUEST_SS_AR_BYTES",              GUEST_SS_AR_BYTES               },
    { "GUEST_DS_AR_BYTES",              GUEST_DS_AR_BYTES               },
    { "GUEST_FS_AR_BYTES",              GUEST_FS_AR_BYTES               },
    { "GUEST_GS_AR_BYTES",              GUEST_GS_AR_BYTES               },
    { "GUEST_LDTR_AR_BYTES",            GUEST_LDTR_AR_BYTES             },
    { "GUEST_TR_AR_BYTES",              GUEST_TR_AR_BYTES               },
    { "GUEST_INTERRUPTIBILITY_INFO",    GUEST_INTERRUPTIBILITY_INFO     },
    { "GUEST_ACTIVITY_STATE",           GUEST_ACTIVITY_STATE            },
    { "GUEST_SM_BASE",                  GUEST_SM_BASE                   },
    { "GUEST_SYSENTER_CS",              GUEST_SYSENTER_CS               },
    { "HOST_IA32_SYSENTER_CS",          HOST_IA32_SYSENTER_CS           },
    { "CR0_GUEST_HOST_MASK",            CR0_GUEST_HOST_MASK             },
    { "CR4_GUEST_HOST_MASK",            CR4_GUEST_HOST_MASK             },
    { "CR0_READ_SHADOW",                CR0_READ_SHADOW                 },
    { "CR4_READ_SHADOW",                CR4_READ_SHADOW                 },
    { "CR3_TARGET_VALUE0",              CR3_TARGET_VALUE0               },
    { "CR3_TARGET_VALUE1",              CR3_TARGET_VALUE1               },
    { "CR3_TARGET_VALUE2",              CR3_TARGET_VALUE2               },
    { "CR3_TARGET_VALUE3",              CR3_TARGET_VALUE3               },
    { "EXIT_QUALIFICATION",             EXIT_QUALIFICATION              },
    { "GUEST_LINEAR_ADDRESS",           GUEST_LINEAR_ADDRESS            },
    { "GUEST_CR0",                      GUEST_CR0                       },
    { "GUEST_CR3",                      GUEST_CR3                       },
    { "GUEST_CR4",                      GUEST_CR4                       },
    { "GUEST_ES_BASE",                  GUEST_ES_BASE                   },
    { "GUEST_CS_BASE",                  GUEST_CS_BASE                   },
    { "GUEST_SS_BASE",                  GUEST_SS_BASE                   },
    { "GUEST_DS_BASE",                  GUEST_DS_BASE                   },
    { "GUEST_FS_BASE",                  GUEST_FS_BASE                   },
    { "GUEST_GS_BASE",                  GUEST_GS_BASE                   },
    { "GUEST_LDTR_BASE",                GUEST_LDTR_BASE                 },
    { "GUEST_TR_BASE",                  GUEST_TR_BASE                   },
    { "GUEST_GDTR_BASE",                GUEST_GDTR_BASE                 },
    { "GUEST_IDTR_BASE",                GUEST_IDTR_BASE                 },
    { "GUEST_DR7",                      GUEST_DR7                       },
    { "GUEST_RSP",                      GUEST_RSP                       },
    { "GUEST_RIP",                      GUEST_RIP                       },
    { "GUEST_RFLAGS",                   GUEST_RFLAGS                    },
    { "GUEST_PENDING_DBG_EXCEPTIONS",   GUEST_PENDING_DBG_EXCEPTIONS    },
    { "GUEST_SYSENTER_ESP",             GUEST_SYSENTER_ESP              },
    { "GUEST_SYSENTER_EIP",             GUEST_SYSENTER_EIP              },
    { "HOST_CR0",                       HOST_CR0                        },
    { "HOST_CR3",                       HOST_CR3                        },
    { "HOST_CR4",                       HOST_CR4                        },
    { "HOST_FS_BASE",                   HOST_FS_BASE                    },
    { "HOST_GS_BASE",                   HOST_GS_BASE                    },
    { "HOST_TR_BASE",                   HOST_TR_BASE                    },
    { "HOST_GDTR_BASE",                 HOST_GDTR_BASE                  },
    { "HOST_IDTR_BASE",                 HOST_IDTR_BASE                  },
    { "HOST_IA32_SYSENTER_ESP",         HOST_IA32_SYSENTER_ESP          },
    { "HOST_IA32_SYSENTER_EIP",         HOST_IA32_SYSENTER_EIP          },
    { "HOST_RSP",                       HOST_RSP                        },
    { "HOST_RIP",                       HOST_RIP                        },
    { NULL,                             0                               }
};
